package com.siwei.mes.service.laboratory.factory.concrete;

import com.alibaba.fastjson.JSONObject;
import com.siwei.mes.entity.experiment.CheckBatchConfig;
import com.siwei.mes.entity.experiment.Experiment;
import com.siwei.mes.entity.experiment.ExperimentDetail;
import com.siwei.mes.entity.system.TestProjectSpecConfig;
import com.siwei.mes.service.laboratory.factory.entity.LaboratoryDownloadVo;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * 混凝土抽象工厂接口
 *
 * @Description: 混凝土抽象工厂接口
 * @Version: 1.0
 * @author: mlchen
 * @date: 2025/3/28 22:07
 */
@Service
public interface ConcreteLaboratoryFactory {
    /**
     * 处理上传
     *
     * @param objJson                   上传的json数据
     * @param sampleNo                  样品编码
     * @param experiment                试验委托信息
     * @param batchConfigList           批检指标配置
     * @param testProjectSpecConfigList 试验项目材料规格判定配置
     * @param detail                    试验委托详情信息
     */
    void processUpload(JSONObject objJson, String sampleNo, Experiment experiment, List<CheckBatchConfig> batchConfigList, List<TestProjectSpecConfig> testProjectSpecConfigList, ExperimentDetail detail);

    /**
     * 处理下载
     *
     * @param sampleNo     样品编码
     * @param experiment   试验委托信息
     * @param detail       试验委托详情信息
     * @param parameterMap 试验项目参数map
     */
    LaboratoryDownloadVo processDownload(String sampleNo, Experiment experiment, ExperimentDetail detail, Map<String, String> parameterMap);
}
